threedim: PrimitiveCloud point-cloud / Gaussian-splat family (from #2109 stack)#2123
Open
jcelerier wants to merge 4 commits into
Open
threedim: PrimitiveCloud point-cloud / Gaussian-splat family (from #2109 stack)#2123jcelerier wants to merge 4 commits into
jcelerier wants to merge 4 commits into
Conversation
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 17, 2026 03:29
2b22ce2 to
3f31f9d
Compare
jcelerier
force-pushed
the
planf/objects
branch
2 times, most recently
from
July 17, 2026 11:58
eb14ad5 to
899f99b
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 17, 2026 11:58
3f31f9d to
ebeb8f4
Compare
jcelerier
added a commit
that referenced
this pull request
Jul 17, 2026
… flush test_unit_threedim_loaders: AssetLoader/GltfParser/FbxParser/TinyObj/Ply/Vcg + the PrimitiveCloud parsers, compiled straight into the test (plugin is -fvisibility=hidden). test_unit_primitivecloud: PLY/.splat/.spz parsers + scene helpers. ObjectGallery: explicit llvm profile flush on _Exit + SEGV/ABRT so coverage runs of the render-regression harness still emit .profraw (atop this branch's render-regression mode). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 17, 2026 14:10
ebeb8f4 to
fc9ac65
Compare
jcelerier
added a commit
that referenced
this pull request
Jul 17, 2026
… flush test_unit_threedim_loaders: AssetLoader/GltfParser/FbxParser/TinyObj/Ply/Vcg + the PrimitiveCloud parsers, compiled straight into the test (plugin is -fvisibility=hidden). test_unit_primitivecloud: PLY/.splat/.spz parsers + scene helpers. ObjectGallery: explicit llvm profile flush on _Exit + SEGV/ABRT so coverage runs of the render-regression harness still emit .profraw (atop this branch's render-regression mode). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 17, 2026 14:29
fc9ac65 to
ec5deba
Compare
jcelerier
added a commit
that referenced
this pull request
Jul 17, 2026
… flush test_unit_threedim_loaders: AssetLoader/GltfParser/FbxParser/TinyObj/Ply/Vcg + the PrimitiveCloud parsers, compiled straight into the test (plugin is -fvisibility=hidden). test_unit_primitivecloud: PLY/.splat/.spz parsers + scene helpers. ObjectGallery: explicit llvm profile flush on _Exit + SEGV/ABRT so coverage runs of the render-regression harness still emit .profraw (atop this branch's render-regression mode). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
jcelerier
force-pushed
the
planf2/pointcloud
branch
2 times, most recently
from
July 18, 2026 13:37
7855239 to
ef58365
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 18, 2026 14:17
ef58365 to
da52f0e
Compare
jcelerier
force-pushed
the
planf/objects
branch
2 times, most recently
from
July 18, 2026 14:23
3d06f50 to
3fe10b1
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 18, 2026 14:23
da52f0e to
c067bbe
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
2 times, most recently
from
July 19, 2026 03:14
337c225 to
5c1950c
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 19, 2026 21:59
5c1950c to
f22647e
Compare
jcelerier
force-pushed
the
planf/objects
branch
2 times, most recently
from
July 20, 2026 23:09
df39bc1 to
c59c898
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 20, 2026 23:09
f22647e to
c19744e
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 21, 2026 04:55
c19744e to
2e67992
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 21, 2026 06:13
2e67992 to
46026c1
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 22, 2026 06:22
46026c1 to
2deeeec
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 22, 2026 16:08
2deeeec to
09f6c26
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 24, 2026 21:53
09f6c26 to
f41ef36
Compare
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 24, 2026 23:07
f41ef36 to
10819d2
Compare
Adds the point-cloud objects: a PLY parser, a .splat binary reader, an SPZ codec (compressed 3D Gaussian splats, via the new spz + zstd submodules), a scene-from-cloud node and a format override, plus the TagAs helper. The asset loader routes .ply/.splat/.spz through them. The existing Splat render node and Splat loader are kept alongside the new family rather than retired, so both remain available. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
ObjectGallery --render <name> : add one object, route its texture output to
an offscreen window, play, and exit 0 if it
rendered a full run without crashing (a
render-path crash kills the process, which
the driver attributes to that object).
render-sweep.sh [filter] : run --render for each object on BOTH GL
backends (llvmpipe and the machine's GPU via
X11) and tally crashes.
Texture objects (ISF, images, model display, ...) render clean on both
backends. Two follow-ups: geometry-only objects need a display chain (they
currently abort when run standalone), and the offscreen readback does not yet
composite the routed texture so the non-blank check is informational.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
ObjectGallery gains a --shader <file> mode: it loads a shader tester (.fs/.frag/.glsl as an ISF Shader, .cs/.comp/.csf as a Compute Shader) into a process, routes its texture output to an offscreen window and renders it, exiting non-zero if it fails to compile or crashes. csf-sweep.sh drives that over the csf-examples corpus on BOTH GL backends (llvmpipe and the machine's GPU via X11). On the csf-testers set, 100/121 shaders render on both backends; the remaining 21 are geometry-producing compute shaders that need a downstream raster stage to display (see the corpus's tests.txt) — chaining them is the next step. Also fixes the sweep drivers to pass per-backend env via `env`, since bash does not treat VAR=val from an expanded "$@" as assignments. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
test_unit_threedim_loaders: AssetLoader/GltfParser/FbxParser/TinyObj/Ply/Vcg + the PrimitiveCloud parsers, compiled straight into the test (plugin is -fvisibility=hidden). test_unit_primitivecloud: PLY/.splat/.spz parsers + scene helpers. ObjectGallery: explicit llvm profile flush on _Exit + SEGV/ABRT so coverage runs of the render-regression harness still emit .profraw (atop this branch's render-regression mode). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
jcelerier
force-pushed
the
planf2/pointcloud
branch
from
July 25, 2026 11:53
10819d2 to
89c17d9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The PrimitiveCloud point-cloud / Gaussian-splat family — the last piece of the 3D-object work, deferred from #2122 because its build wiring is more involved.
Stacked on #2122; retargets as the stack merges.
What it adds
.splatbinary reader, an SPZ codec for compressed 3D Gaussian splats (via newspz+zstdsubmodules), a scene-from-cloud node, and a format override.TagAshelper, and asset-loader routing for.ply/.splat/.spz.Kept, not retired (per the "keep both" decision)
The upstream 3D branch deletes the old
Splat/render node in favour of this family; here it is preserved — the Splat render node and Splat loader remain registered alongside PrimitiveCloud.Notes
The earlier deferral cited three blockers; two dissolved once built from the branch tip rather than an intermediate commit (the
Gfx::FormatRegistryreference is an empty-stub include at tip, unused), and thelibspz-fPIClink failure was from applying the zstd build wiring incompletely — the complete3rdparty/zstd.cmake+ redirect + spz stub build cleanly.Validation
ctest: 17/17.🤖 Generated with Claude Code